Blocking the effects of scan chain testing upon a change in scan chain topology

ABSTRACT

A system comprises a plurality of components, scan chain selection logic coupled to the components, and override selection logic coupled to the scan chain selection logic. The scan chain selection logic selects various of the components to be members of a scan chain under the direction of a host computer. The override selection logic detects a change in the scan chain and, as a result, blocks the entire scan chain from progressing.

CROSS REFERENCE TO RELATED APPLICATIONS

This application is divisional of prior application Ser. No. 14/717,632,filed May 20, 2015, currently pending;

Which was a divisional of prior application Ser. No. 14/567,266, filedDec. 11, 2014, now U.S. Pat. No. 9,063,197, granted Jun. 23, 2015;

Which was a divisional of prior application Ser. No. 14/149,139, filedJan. 7, 2014, now U.S. Pat. No. 8,938,651, granted Jan. 20, 2015;

Which was a divisional of prior application Ser. No. 13/859,968, filedApr. 10, 2013, now U.S. Pat. No. 8,656,234, granted Feb. 18, 2014;

Which was a divisional of prior application Ser. No. 13/712,214, filedDec. 12, 2012, now U.S. Pat. No. 8,464,111, granted Jun. 11, 2013;

Which was a divisional of prior application Ser. No. 13/564,339, filedAug. 1, 2012, now U.S. Pat. No. 8,359,502, granted Jan. 22, 2013;

Which was a divisional of prior application Ser. No. 12/116,471, filedMay 7, 2008, now U.S. Pat. No. 8,261,143, granted Sep. 4, 2012; and

This application claims priority to U.S. Provisional Application No.60/928,034 filed May 7, 2007 entitled “Method to inform a JTAG scancontroller of a change in scan topology,” incorporated herein byreference.

BACKGROUND

In many embedded designs, the Joint Test Action Group (JTAG, IEEE1149.1) interface on a device or system provides access to test anddebug capabilities on, for example, a processor. This interface conformsto the IEEE 1149.1 Test Access Port (TAP) protocol and requirements.Systems-on-a-chip designs often have multiple cores, each of which hastheir own TAP. When multiple processors are present in a system, the TAPof each processor could be connected in series or dynamically managed bya TAP linking module. When a TAP linking module exists on a device,debug software, executing on a host, programmatically selects which TAPsare to be connected in series and visible between the JTAG input andoutput pins (test data in (TDI) and test data out (TDO)).

Usually, the selection of which secondary TAPs are linked together toform the scan path between the system's TDI and TDO pins is explicitlyspecified and programmed by the host debug system. When a TAP is addedto the master scan path, the length of the scan path between the TDI andTDO will increase due to the inclusion of the scan bits in the newlyadded TAP. Because the host has programmed the selection of the newlyadded TAP, the host knows that the overall scan path length has changed.In this fashion, the host always knows the overall length of the scanpath between the TDI and TDO pins and the location of the serial scanchain of each selected TAP.

There are circumstances, however, in which the TAP linking module mustdeselect and unlink a secondary TAP without being explicitly instructedto do so by command from the host. For example, if power is turned offto one of the secondary TAPs that is currently included in the masterscan path, the serial scan chain between the device's TDI and TDO pinswould be broken. Scan to any and all TAPs in the system would be brokenbecause shift cannot occur through the shift registers in the nowunpowered TAP. Another reason for spontaneously and abruptly, removing asecondary TAP from the master scan path is due to a change in scanaccess rights to a TAP. In order to protect confidential informationbeing processed on an embedded device, some devices are equipped withsecurity features to block viewing of some data. This requirementconflicts with the debug features provided on the JTAG interface thatseeks to provide complete system visibility. A security module on thedevice may be programmed to prohibit all scan access to a TAP in thesystem. If this TAP is currently selected as part of the mater scanpath, the TAP linking module must enforce the restricted scan accessrights by deselecting the secondary TAP.

Ideally, the power and security settings for a secondary TAP should notchange while the debug software has included the secondary TAP in thescan chain. However, system design considerations do not always makethis possible. At times, the TAP linking module may be required toautomatically disconnect from a secondary TAP. The disconnect can occurat any point in time, even while a scan operation is occurring. When theTAP linking module must make a change to the scan path that was notprogrammed by the host, the host's debug software will not know that theoverall scan path length has changed. Furthermore, because one or moreTAPs was eliminated from the serial scan path, the position of theremaining TAPs has changed. The length of the scan data generated by thedebug software does not match the scan chain length. Since the hostdebug system is not aware of this change in position, it will incorrectapply scan bits to the wrong place and even the wrong TAP in the system.System behavior will be unpredictable and potentially harmful.

SUMMARY

In accordance with at least some embodiments, a method comprises asystem under test (SUT) detecting a change in scan chain topology in theSUT. The method further comprises blocking the effects of scansinitiated by the debug software until the debug software acknowledges ithas recognized the scan chain length has changed. In some embodiments,the SUT informs the host that the scan chain attributes have beenchanged. Blocking the effects of scans includes preventing the scanchain states from progressing (i.e., freezing the scan).

In other embodiments, a system comprises a plurality of components, scanchain selection logic coupled to the components, and override selectionlogic connected to the scan chain selection logic. The scan chainselection logic selects various of the components to be members of ascan chain under the direction of a host computer. The overrideselection logic detects a change in the scan chain and, as a result,blocking the effects of scans initiated by the debug software until thedebug software acknowledges it has recognized the scan chain attributeshave changed.

Moreover, in the embodiments disclosed, normal scan operation isterminated. Terminating a “normal scan” means blocking the effects ofscan initiated by the host system.

BRIEF DESCRIPTION OF THE DRAWINGS

For a detailed description of exemplary embodiments of the invention,reference will now be made to the accompanying drawings in which:

FIG. 1 shows a system in accordance preferred embodiments of theinvention;

FIG. 2 illustrates an embodiment of reporting a premature termination ofa scan chain in accordance with preferred embodiments of the invention;

FIG. 3 illustrates the state transition diagram for a Test AccessProtocol (TAP) state machine within a JTAG-enabled system in accordancewith at least some preferred embodiments;

FIG. 4 shows a method in accordance with preferred embodiments of theinvention; and

FIG. 5 shows an embodiment in which a state of an embedded TAPcontroller is frozen.

NOTATION AND NOMENCLATURE

Certain terms are used within the following description and claims torefer to particular system components. As one skilled in the art willappreciate, companies may refer to a component by different names. Thisdocument does not intend to distinguish between components that differin name but not function. In the following discussion and in the claims,the terms “including” and “comprising” are used in an open-endedfashion, and thus should be interpreted to mean “including, but notlimited to . . . .” Also, the term “couple” or “couples” is intended tomean either an indirect or direct electrical connection. Thus, if afirst device couples to a second device, that connection may be througha direct electrical connection, or through an indirect electricalconnection via other devices and connections.

DETAILED DESCRIPTION

The following discussion is directed to various embodiments of theinvention. Although one or more of these embodiments may be preferred,the embodiments disclosed should not be interpreted, or otherwise used,as limiting the scope of the disclosure, including the claims. Inaddition, one skilled in the art will understand that the followingdescription has broad application, and the discussion of any embodimentis meant only to be exemplary of that embodiment, and not intended tointimate that the scope of the disclosure, including the claims, islimited to that embodiment.

FIG. 1 illustrates a system 8 in accordance with an embodiment of theinvention. System 8 includes a host system 10 coupled to a system undertest (SUT) 20. The host system 10 comprises a processor that executeshost debug software 14 to test the SUT 20. The host debug software 14 isstored on computer-readable media such as a volatile memory (e.g.,random access memory), non-volatile storage (e.g., hard disk drive,read-only memory (ROM), CD ROM, Flash memory, etc.), download from acommunications link, or combinations thereof. The host system 10 alsocomprises a debug and test port 16 which provides an electricalinterface to the SUT 20.

The SUT 20 also comprises a corresponding debug and test port 22 coupledto the test and debug port 16 of the host system 10. The SUT 20 furthercomprises one or more components 24, 26, 28 to be selectively tested bythe host system 10. Although three components 24-28 are shown, anynumber of testable components is possible. The components 24-28 maycomprise processor cores or other types of circuitry to be tested. Thehost system 10, via its host debug software 14, selects one or more ofthe components 24-28 to be tested. If multiple components 24-28 are tobe tested, the host debug software 14 commands the SUT 20 to connect theselected components in a configuration to be tested by the host system10. The component configuration can be a series configuration or a starconfiguration. In a series configuration, the selected components areconnected in series and scan chain bits generated by the host system 20are provided to the first component in the series combination. The bitsare routed from one component to the next in the series chain and thelast component in the chain provides its output bits to the host system20. In a star configuration, each target component to be tested isaccessed directly by the host system 10.

In some embodiments, the debug and test ports 16, 22 are implementedaccording to the JTAG standard, but can be implemented in accordancewith other standards as well.

The SUT 20 also comprises scan chain selection logic 30. In theembodiment of FIG. 1, the scan chain selection logic 30 comprises amultiplexer that corresponds to each component 24-28 and means to stopthe TAP controller state progression as shown in FIG. 5. As shown,multiplexer 32 corresponds to component 24, while multiplexers 34 and 36correspond to components 26 and 28, respectively. The configuration ofthe SUT depicted in FIG. 1 is that of a series configuration. Eachmultiplexer selects either the output of the preceding multiplexer (orthe data received from the debug and test port 22 in the case of thefirst multiplexer 32) or the output from a corresponding component 24-28as the output of that multiplexer. The output of one multiplexer iscoupled to the input of the next multiplexer in series. The output isalso provided to the corresponding component for testing purposes. Theoutput of the component is provided to the other input of themultiplexer. Thus, test input can be provided to each component inseries and the multiplexers either select the test output from eachcomponent or bypass the component. The host system 10 has control overthe multiplexers and in that fashion can select the components to be inthe scan chain. When a multiplexer bypasses a component, the operationof the test features of the component is suspended as shown in FIG. 5.

A logic gate also is shown corresponding to each multiplexer. Gates 40,42, and 44 correspond to each of multiplexers 32, 34, and 36,respectively. Although each gate may be implemented as any of a varietyof logic gates, AND gates are shown in the illustrative embodiment ofFIG. 1. Each gate 40-44 may be implemented as one logic gate or acombination of logic gates. In the embodiment of FIG. 1, each gate 40-44generates a control signal to the corresponding multiplexer. Gate 40generates control signal 50 for multiplexer 32. Gates 42 and 44 generatecontrol signals 52 and 54 for multiplexers 34 and 36, respectively. Eachcontrol signal 50-54 causes the corresponding multiplexer to select oneor the other of the multiplexer's inputs to be the output, as dictatedby the state of the control signal. Additionally control signal 52suspends the operation of the test clock TCK signal, through gate 27, toembedded TAP controller 27 in component 26.

Each control signal 50-54 is generated based on three input signals inaccordance with the embodiment of FIG. 1. With each logic gate 40-44implemented as an AND gate, the control signal is a logic “1” only ifall three inputs are logic 1's; otherwise, the control signal is a logic0. One of the three inputs to each logic gate 40-44 is from the SUT'stest and debug port 22. The host system 10 sends a command to the SUT 20to specify which of the components 24-28 is to be included in the scanchain for testing purposes. Via such a command from the host system 10,the test and debug port 22 generates a selection signal 60, 62, and 64for each of gates 40-44. Each selection signal 60-64 dictates whetherthe component 24-28 corresponding to the various gates 40-44 are to beincluded in the scan chain. For example, the selection signals 60 and 64may be asserted by the test and debug port 22 (as commanded by the hostsystem 10) to select components 24 and 28, but not component 26, to bepart of a particular scan chain.

Besides the selection signal from the test and debug port 22, the othertwo input signals to each gate 40-44 are from the correspondingcomponent 24-28 and from an override selection logic 50. Despite thehost system 10 desiring a particular component 24-28 to be included aparticular scan chain, that particular component may preclude itselffrom being included in the scan chain. The reason for not being includedin a scan chain may be due, as described previously, to the component'ssecurity level (e.g., a particular security mode or level may precludeaccess to the scan chain without proper authentication by the hostsystem 10) or due to the component's power state (e.g., the componentmay be in a low power mode). For whatever reason, a component 24-28 maynot be includable in a scan chain but, not aware of that fact, the hostsystem 10 may attempt to include the component nonetheless. Accordingly,each component, or logic (not shown) associated with the component,asserts a component override signal to the gate. Components 24-28 assertcomponent override signals 70-74, respectively. Each component selectionoverride signal 70-74, when asserted (e.g., logic 0) causes the outputof the corresponding AND gate 40-44 to be a logic 0 regardless of thestate of the corresponding selection signals 60-64 from the test anddebug port 22. As such, each component override signal 70-74 canoverride a command from the host system 10 to include the correspondingcomponent 24-28 in the scan chain. In other embodiments, the assertedstate of the component override signals can be a logic 1 depending onthe implementation of gates 40-44.

If the host system 10, via host debug software 14, generates a scanchain data set under the assumption that certain components 24-28 areincluded in the scan chain (as previously configured by the host system)when, in fact, one or more of the components are not included in thescan chain, predictable and improper behavior may result. The length ofthe scan chain is different than the scan chain length believed by thehost system 10 to be the case. The host system 10 generates the scanchain data for a particular scan chain length, but the data, ifpermitted to be sent to the scan chain with a different length may causeunpredictable SUT behavior. Accordingly, if one or more of thecomponents 24-28 that the host system 10 specifies to be included in thescan chain cannot be included, in accordance with the preferredembodiments none of the components are included. By disabling the entirescan chain, the potentially harmful effects that the scan chain mighthave on the SUT 20 are minimized or eliminated.

Referring still to FIG. 1, the component override signals 70-74 from theindividual components 24-28 are also provided to the override selectionlogic 50 in addition to, or instead of, the gates 40-44. The overrideselection logic 50 also receives the selection signals 60-64 from thedebug and test port 22. These signals inform the override selectionlogic 50 as to which components 24-28 the host system 10 has specifiedto be included in a scan chain. The override selection logic 50 assertsan output master override signal 80 to all of the gates 40-44 if any ofthe individual component override signals 70-74 are asserted andselection signal 60-64 from the debug and test port 22 corresponding tosuch individual component override signal(s) is asserted. That is, ifthe host system 10 commands a certain component 24-28 to be included inthe scan chain, but unbeknownst to the host system 10 that particularcomponent cannot be included, the override selection logic disables theentire scan chain. As such, the override selection logic 50 guaranteesthat all of the components 24-28 in SUT 20 are eliminated from the scanchain specified by the host system 10. Moreover, the potentiallyunpredictable and improper SUT behavior is minimized or prevented.

In FIG. 1, each AND gate 40-44 receives three input signals. Theselection signals 60-64 from the debug and test port are provided to thegates. Also, the component override signal 70-74 and the master overridesignal 80 are provided to each gate and cause the components to bedeselected. In other embodiments, each gate only receives two inputsignals—the selection signals 60-64 and the master override signal 80.In this latter embodiment, a component override signal 70-74 is notprovided directly to the corresponding gate and, instead is provided tothe override selection logic 50 which then broadcasts the masteroverride signal 80 to each gate 40-44.

In addition to automatically deselecting all components from a scanchain if any one or more of the components cannot be included in a scanchain specified by the host system 10, the SUT 20 also informs the hostsystem 10 that the scan chain has been disabled. Any of a variety oftechniques can be implemented to inform the host system 10 that the scanchain has been disabled. Examples of such techniques to inform the hostsystem 10 include notification through a designated debug test pin or anotification through the scan chain's output pin. These two techniquesare discussed below.

In the first technique of notifying the host system 10, FIG. 2illustrates that the electrical communication link 15 between the SUT 20and host system 10 includes a conductor 90 dedicated for the purpose ofnotifying the host that the scan chain has been disabled. When theoverride selection logic 50 asserts the master override signal 80 to thedebug and test port 22 which, in turn, asserts an override signal 90back to the host system 10. The host system 10 detects the overridesignal 90 and interprets the signal as indicating that the scan chainhas been disabled. This technique requires a dedicated test port pin tocommunicate the deactivation of the scan chain to the host system 10.

If it is not desirable to dedicate an extra pin for the purpose ofcommunicating to the host system 10 that the scan chain has beendisabled, the second technique noted above can be used. In this lattertechnique, a predefined output bit sequence is forced onto the outputsignal from the SUT 20 to the host system 10. The particular predefinedoutput bit sequence is not an output bit sequence that would normallyoccur during normal system operation. Instead, the predefined output bitsequence is detected by the host system 10 and interpreted as anindication that the scan chain has been deactivated by the SUT 20. Adedicated pin is not used in this embodiment and, instead, the normaloutput pin of the debug and test port 22 is used to communicate that thescan chain has been deactivated. The following describes one embodimentof this technique in the context of a JTAG implementation. In a JTAGimplementation the communication link 15 between the host system 10 andSUT 20 includes various JTAG-compliant signals such as test data in(TDI), test data out (TDO), and test clock (TCK). These JTAG-compliantsignals are also provided on signals 25 provided to each component andmultiplexer as shown in FIG. 1.

FIG. 3 shows the Test Access Port Protocol of the IEEE 1149.1 standard,and is also described in copending application Ser. No. 11/423,702entitled “System and Method for Improved Performance and Optimization ofData Exchanges Over a Communications Link,” filed Jun. 12, 2006 andincorporated herein by reference. The TAP state machine enables scansthrough two scan paths or registers. The Instruction Register (IR) scanpath and TAP states enable scan through an instruction register. Thedata register (DR) scan path and TAP states enable scan through one ormore data registers. IR instruction scanned into the IR can modulate theDR scan path and thus which DR is scanned on the next trip through theDR TAP states.

In accordance with the preferred embodiments of the invention, a newscan register called the status register (SR) 59, FIG. 5, is provided.The SR 59 preferably is a 1-bit register that is coupled between eachcomponent's TDI pin and the component's TDO pin. The SR 59 scan pathfunctions differently than the IR and DR scan paths.

When multiple TAPs (one associated with each component 24-28) areconnected in series, either statically or dynamically, the total IR scanpath of the SUT 20 is the sum of the IRs of each of the TAPs in theseries connection. For example, if three TAPs are connected in series,and a BYPASS IR instruction has been scanned into the IR of each TAP inthe series, then the total DR path length between the device TDI anddevice TDO pins will be 3, one bit from each of the three TAPs. The SRscan path is different. Regardless of the number of TAPs connected inseries within the device, the SR scan path is always 1 bit between theTDI and TDO of the SUT 20. Alternately the characteristics of the 1149.1standard requires a minimum two bit instruction register with a capturevalue of with both a logic one and a logic zero for the first bitsscanned out. Outputting an IR scan non-standard value for these two bitscan be used to indicate the scan chain is non functional.

Shifting through the data registers occurs during the Shift-DR state ofFIG. 3. Similarly, shifting through Shift-IR state occurs during theShift-IR state. Only during these two states is the value on the TDI pinshifted in and a value is shifted out on the TDO pin. When the TAP is inany of the other states shown in FIG. 3, the TDI and TDO pins are notused.

Shifting through the SR 59 shift path occurs during Idle, Pause-DR andPause-IR states. For each TCK cycle, data is shifted in through the TDIinto the 1-bit SR while the existing SR value is shifted out through theTDO pin.

When one of the SR shift states is entered, a 0 will be output on thedevice TDO instead of the value in the SR 59 bit. This conditionpersists until the host system 10 takes explicit actions to clear thecondition through the IR and DR scans. It is expected that the hostsystem 10 will drive a logic 1 on the TDO during the SR shift states. Ifmultiple components 24-28 are present, connected in series, and membersof the host system-initiated scan chain, then when one of the components24-28 asserts its component override signal 70-74, a 0 value isintroduced by the faulting component. That 0 value is then shiftedthrough the rest of the components in the scan chain. The host system 10samples the value of the TDO signal from the SUT 20 and, if all 0's aredetected, determines that a change in scan path topology has occurred.Further, if the host system 10 knows the number of components in thescan chain, the host system 10 can determine the particular componentthat had the problem by counting the number of TCK cycles until a 0 isdetected on TDO. This process is similar to the required IR scan capturevalue being either both a logic 1 or logic 0 indicating a broken scanchain.

FIG. 4 shows a method 100 in accordance with various embodiments. Method100 includes at least actions 102-106, although other actions may beincluded. Further, the order of the actions shown in FIG. 4 can bevaried as desired. At 102, the host system 10 initiates a scan chain. At104, a change in the scan chain topology is determined and at 106, thescan chain is terminated as described above. Terminating the scan, insome embodiments, means blocking or preventing the scan states fromprogressing. At 108, the termination of the scan chain is communicatedback to the host system 10.

FIG. 5 shows an embodiment illustrating an embedded TAP controller 27(embedded in component 26, for example). The embedded TAP controllerincludes TDI and TDO pins. The multiplexer 34 associated with component26 is also shown. As explained above, multiplexer 34 outputs either thescan path from the preceding multiplexer (multiplexer 32 in this case)or the TDO from the embedded TAP controller in component 26, asspecified by the selection signal 52. The selection signal 52 is alsogated with the TCK clock signal to the embedded TAP controller 27. Bygating the TCK clock signal, the state of the embedded TAP controller 27can be frozen via the selection signal 52. The operation of the othercomponents 24 and 28 (and their embedded TAP controllers) function in asimilar manner.

Freezing the embedded TAP controller of each component effectively stopsor blocks (at least temporarily) the scan chain states from progressing.Blocking the progression of the scan chain prevents the scan chain fromchanging the states of the components 24-28. The host system 10 isinformed of the block on the scan chain and preferably is informed, asexplained above, of which component(s) in the scan chain caused the scanchain to be blocked (i.e., which component that the host system hadincluded in the scan chain could not actually be included in the scanchain due to, for example, power or security reasons).

Once a normal scan chain (i.e., one initiated by the host system 10) hasbeen blocked by the SUT 20, scan chain operation can be restored byanother scan operation subsequent to the blockage. The host system 10,armed with the knowledge of which component 24-28 cannot be included inthe scan chain, restarts a new scan chain without that particularcomponent. As a result, the override selection logic 50 deasserts itsmaster override signal 80 to let the new scan chain progress through theSUT 20.

The above discussion is meant to be illustrative of the principles andvarious embodiments of the present invention. Numerous variations andmodifications will become apparent to those skilled in the art once theabove disclosure is fully appreciated. It is intended that the followingclaims be interpreted to embrace all such variations and modifications.

What is claimed is:
 1. A system on a chip comprising: A. acommunications link including a serial test data in lead and a serialtest data out lead; B. a port coupled to the communications linkincluding the serial test data in lead and the serial test data outlead, and having a chip serial test data in lead, a chip serial testdata out lead, a first select output lead, and a second select outputlead; C. a first component separate from the port, the first componentincluding a first embedded TAP controller, the first component having atest data input coupled to the chip serial test data in lead, a firstcomponent serial test data output lead, and a first override outputlead; D. first multiplexer circuitry having a first input coupled to thechip serial test data in lead, a second input coupled to the firstcomponent serial test data output, an output, and a control input; E.first gating circuitry having a first input connected to the firstselect output lead, a second input connected to the first overrideoutput lead, and an output connected to the control input of themultiplexer circuitry; C. a second component separate from the port andfirst component, the second component including a second embedded TAPcontroller, the second component having a test data input coupled to theoutput of the first multiplexer circuitry, a second component serialtest data output lead, and a second override output lead; D. secondmultiplexer circuitry having a first input coupled to output of thefirst multiplexer circuitry, a second input coupled to the secondcomponent serial test data output, an output, and a control input; andE. second gating circuitry having a first input connected to the secondselect output lead, a second input connected to the second overrideoutput lead, and an output connected to the control input of the secondmultiplexer circuitry.
 2. The system of claim 1 in which the TAPcontroller has states of Test Logic Reset, Run Test Idle, Select-DR, andSelect-IR.
 3. The system of claim 1 in which the communications linkincludes a test clock lead and the first and second embedded TAPcontrollers include a clock input coupled to the test clock lead.